
set(rtc_base_approved_SRCS
    bit_buffer.cc
    bitrate_allocation_strategy.cc
    buffer_queue.cc
    byte_buffer.cc
    copy_on_write_buffer.cc
    event_tracer.cc
    flags.cc
    location.cc
    numerics/histogram_percentile_counter.cc
    numerics/sample_counter.cc
    platform_file.cc
    race_checker.cc
    random.cc
    rate_statistics.cc
    rate_tracker.cc
    timestamp_aligner.cc
    zero_memory.cc
)

set(platform_thread_types_SRCS
    platform_thread_types.cc
)

set(criticalsection_SRCS
    critical_section.cc
)

set(platform_thread_SRCS
    platform_thread.cc
)

set(rtc_event_SRCS
    event.cc
)

set(logging_SRCS
    logging.cc
)

set(checks_SRCS
    checks.cc
)

set(rate_limiter_SRCS
    rate_limiter.cc
)

set(timeutils_SRCS
    time_utils.cc
)

set(stringutils_SRCS
    string_encode.cc
    string_to_number.cc
    string_utils.cc
    strings/string_builder.cc
)

set(audio_format_to_string_SRCS
    strings/audio_format_to_string.cc
)

set(rtc_task_queue_SRCS
    task_queue.cc
)

set(rtc_enable_libevent_SRCS
    task_queue_libevent.cc
)

set(rtc_task_queue_stdlib
    task_queue_stdlib.cc
)

set(weak_ptr_SRCS
    weak_ptr.cc
)

set(rtc_numerics_SRCS
    numerics/exp_filter.cc
    numerics/moving_average.cc
    numerics/samples_stats_counter.cc
)

set(rtc_json_SRCS
    strings/json.cc
)
    
set(rtc_base_SRCS
    async_invoker.cc
    async_packet_socket.cc
    async_resolver_interface.cc
    async_socket.cc
    async_tcp_socket.cc
    async_udp_socket.cc
    crc32.cc
    crypt_string.cc
    data_rate_limiter.cc
    file_rotating_stream.cc
    helpers.cc
    http_common.cc
    ip_address.cc
    key_derivation.cc
    message_digest.cc
    message_handler.cc
    message_queue.cc
    net_helper.cc
    net_helpers.cc
    network.cc
    network_monitor.cc
    null_socket_server.cc
    openssl_adapter.cc
    openssl_certificate.cc
    openssl_digest.cc
    openssl_identity.cc
    openssl_key_derivation_hkdf.cc
    openssl_session_cache.cc
    openssl_stream_adapter.cc
    openssl_utility.cc
    physical_socket_server.cc
    proxy_info.cc
    rtc_certificate.cc
    rtc_certificate_generator.cc
    signal_thread.cc
    socket.cc
    socket_adapters.cc
    socket_address.cc
    socket_address_pair.cc
    ssl_adapter.cc
    ssl_certificate.cc
    ssl_fingerprint.cc
    ssl_identity.cc
    ssl_stream_adapter.cc
    stream.cc
    thread.cc
    unique_id_generator.cc
    log_sinks.cc
    ifaddrs_converter.cc
)

set(gunit_helpers_SRCS
    gunit.cc
)

set(rtc_base_tests_utils_SRCS
    cpu_time.cc
    fake_clock.cc
    fake_ssl_identity.cc
    firewall_socket_server.cc
    memory_stream.cc
    memory_usage.cc
    nat_server.cc
    nat_socket_factory.cc
    nat_types.cc
    proxy_server.cc
    server_socket_adapters.cc
    sigslottester.h.pump
    socket_stream.cc
    test_echo_server.cc
    test_utils.cc
    virtual_socket_server.cc
)
add_library(rtc_base 
    ${rtc_base_approved_SRCS}
    ${platform_thread_types_SRCS}
    ${criticalsection_SRCS}
    ${platform_thread_SRCS}
    ${rtc_event_SRCS}
    ${logging_SRCS}
    ${checks_SRCS}
    ${rate_limiter_SRCS}
    ${timeutils_SRCS}
    ${stringutils_SRCS}
    ${audio_format_to_string_SRCS}
    ${rtc_task_queue_SRCS}
    ${rtc_enable_libevent_SRCS}
    ${rtc_task_queue_stdlib}
    ${weak_ptr_SRCS}
    ${rtc_numerics_SRCS}
    #${rtc_json_SRCS}
    ${rtc_base_SRCS}
    #${gunit_helpers_SRCS}
    #${rtc_base_tests_utils_SRCS}
)